home *** CD-ROM | disk | FTP | other *** search
-
- {
- >I am interested in any info regarding the use of OLE Automation
- >in Delphi 2.0 . The demo programs provided with Delphi help
- >at first, but I seem to have come upon major stumbling blocks,
- >and the online help is skimpy on the subject. Specifically, I want
- >to communicate with Microsoft Excel. Executing the following
- >code:
- >
-
- I don't remember where I got this but it seems to work for me in my exercises of learning OLE Auto
- with Excel:
- }
-
- unit Excel1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OleAuto,
- StdCtrls;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- bFancyAry: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure bFancyAryClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
- var
- V: Variant;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- V := CreateOleObject('Excel.Sheet');
- V.Range('A1:D8').Formula := 'RAND()';
- V.Application.Sheets.Add;
- Caption := 'Num Sheets = ' + IntToStr(V.Application.Sheets.Count);
- ShowMessage('Excel Sheet Created');
- end;
-
- var
- A: Variant;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- A := CreateOleObject('Excel.Application'); //Start a new copy of Excel
- A.Visible := True;
- A.WorkBooks.Add;
- A.Sheets.Add;
- Caption := 'Num Sheets = ' + IntToStr(A.Sheets.Count);
- end;
-
- procedure TForm1.bFancyAryClick(Sender: TObject);
- var
- i, j: Integer;
- Ch: Char;
- SimpAry: Variant;
- begin
- SimpAry := CreateOleObject('Excel.Application'); //Start a new copy Excel
- SimpAry.Visible := True;
- SimpAry.WorkBooks.Add;
- SimpAry.Sheets.Add;
- for i := 1 to 10 do
- for j := 1 to 10 do
- SimpAry.Cells[j, i].Value := i * j;
- for i := 1 to 10 do begin
- Ch := Chr(64 + i);
- SimpAry.Cells[11, i].Value := Format('=Sum(%s1:%s10)', [Ch, Ch]);
- end;
- end;
- end.